/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package upeu.cepre.business;

import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.AbstractList;
import java.util.ArrayList;
import java.util.List;
import upeu.cepre.model.DetalleAlumnoCurso;
import upeu.cepre.model.DetallePeriodoCurso;

import upeu.cepre.util.DataBaseConexion;

/**
 *
 * @author Elvis Zanguetsu
 */
public class DetalleAlumnoCursoManager {

    public Connection connection;

    public List<DetalleAlumnoCurso> Report() {
        List<DetalleAlumnoCurso> detalleAlumnoCursos = new ArrayList<DetalleAlumnoCurso>();


        try {

            connection = DataBaseConexion.getConexion();
            Statement statement = connection.createStatement();
            PreparedStatement prepareestatemente = connection.prepareStatement("SELECT * FROM  detallealumnocurso");


            ResultSet rs = prepareestatemente.executeQuery();
            while (rs.next()) {
                DetalleAlumnoCurso detalleAlumnoCurso = new DetalleAlumnoCurso();

                detalleAlumnoCurso.setIdDetalleAlumnoCurso(rs.getString("idDetalleAlumnoCurso"));
                detalleAlumnoCurso.setIdDetallePeriodoAlumno(rs.getString("idDetallePeriodoAlumno"));
                detalleAlumnoCurso.setIdDetallePeriodoCurso(rs.getString("idDetallePeriodoCurso"));
                detalleAlumnoCurso.setNotaCurso(rs.getString("notaCurso"));


                detalleAlumnoCursos.add(detalleAlumnoCurso);

            }
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return detalleAlumnoCursos;
    }

    public String ObtenerId() {

        java.util.Date ahora = new java.util.Date();
        SimpleDateFormat formateador = new SimpleDateFormat("ddMMyyyy");
        DetalleAlumnoCursoManager trabManager = new DetalleAlumnoCursoManager();
        int a = trabManager.Report().size();
        return formateador.format(ahora) + "AlumnoCurso" + (a + 1);

    }

    public void Add(String idDetallePeriodoAlumno, String periodo) {
        try {
            DetalleAlumnoCursoManager AlumCurso = new DetalleAlumnoCursoManager();
            DetallePeriodoCursoManager periodoCursoManag = new DetallePeriodoCursoManager();
            List<DetallePeriodoCurso> listCursos = new ArrayList<DetallePeriodoCurso>();

            listCursos = periodoCursoManag.findByIdPeriodo(periodo);

            for (int y = 0; y < listCursos.size(); y++) {
                System.out.println("---  tamaño Cursos  ---");
                System.out.println("---  " + y + "  ---");
                connection = DataBaseConexion.getConexion();
                PreparedStatement preparedStatement =
                        connection.prepareStatement("  INSERT INTO detallealumnocurso ( idDetalleAlumnoCurso , idDetallePeriodoAlumno , idDetallePeriodoCurso , notaCurso ) VALUES (?, ?, ?, ? ) ");

                preparedStatement.setString(1, AlumCurso.ObtenerId());
                preparedStatement.setString(2, idDetallePeriodoAlumno);
                preparedStatement.setString(3, listCursos.get(y).getIdDetallePeriodoCurso());
                preparedStatement.setString(4, "00");
                preparedStatement.executeUpdate();
                connection.close();

            }
        } catch (SQLException e) {
            e.printStackTrace();
        }


    }

    /*
     * public DetalleAlumnoCurso finById(String idDetallePeriodoAlumno) {
     * DetalleAlumnoCurso detalleAlumnoCurso = new DetalleAlumnoCurso();
     *
     *
     * try { connection = DataBaseConexion.getConexion(); PreparedStatement
     * preparedStatement = connection.prepareStatement("select * from
     * detallealumnocurso where idDetalleAlumnoCurso=?");
     * preparedStatement.setString(1, idDetallePeriodoAlumno); ResultSet rs =
     * preparedStatement.executeQuery();
     *
     * if (rs.next()) {
     *
     * detalleAlumnoCurso.setIdDetalleAlumnoCurso(rs.getString("idDetalleAlumnoCurso"));
     * detalleAlumnoCurso.setIdDetallePeriodoAlumno(rs.getString("idDetallePeriodoAlumno"));
     * detalleAlumnoCurso.setIdDetallePeriodoCurso(rs.getString("idDetallePeriodoCurso"));
     * detalleAlumnoCurso.setNotaCurso(rs.getString("notaCurso"));
     *
     *
     * }
     *
     * connection.close(); } catch (SQLException e) { e.printStackTrace(); }
     *
     * return detalleAlumnoCurso; }
     */
    public List<DetalleAlumnoCurso> findByIdPeriodoAlumno(String idDetallePeriodoAlumno) {
        List<DetalleAlumnoCurso> detalleAlumnoCursos = new ArrayList<DetalleAlumnoCurso>();

        try {
            connection = DataBaseConexion.getConexion();
            Statement statement = connection.createStatement();
            PreparedStatement prepareestatemente = connection.prepareStatement("SELECT * FROM  detallealumnocurso WHERE idDetallePeriodoAlumno=?  ");
            prepareestatemente.setString(1, idDetallePeriodoAlumno);
            ResultSet rs = prepareestatemente.executeQuery();
            while (rs.next()) {

                DetalleAlumnoCurso detalleAlumnoCurso = new DetalleAlumnoCurso();

                detalleAlumnoCurso.setIdDetalleAlumnoCurso(rs.getString("idDetalleAlumnoCurso"));
                detalleAlumnoCurso.setIdDetallePeriodoAlumno(rs.getString("idDetallePeriodoAlumno"));
                detalleAlumnoCurso.setIdDetallePeriodoCurso(rs.getString("idDetallePeriodoCurso"));
                detalleAlumnoCurso.setNotaCurso(rs.getString("notaCurso"));



                detalleAlumnoCursos.add(detalleAlumnoCurso);

            }

            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return detalleAlumnoCursos;
    }

    public void UpdateNotas(String idDetalleAlumnoCurso, String parameter) {
        try {

            connection = DataBaseConexion.getConexion();
            Statement statement = connection.createStatement();
            PreparedStatement preparedStatement = connection.prepareStatement(
                    "UPDATE detallealumnocurso SET notaCurso=? WHERE idDetalleAlumnoCurso=?");
            // Parameters start with 1

            preparedStatement.setString(1, parameter);
            preparedStatement.setString(2, idDetalleAlumnoCurso);

            preparedStatement.executeUpdate();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("---  " + e + "  ---");

        }
    }
}
